iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0
自我挑戰組

30天用Python打造你的數位金融實力:從零開始的FinTech入門筆記系列 第 5

Python 模擬交易異常偵測 — 從金額與時段雙條件入手

  • 分享至 

  • xImage
  •  

金融交易風控聽起來很高深,但其實我們可以用簡單的程式就模擬出一個小小的「異常交易偵測系統」。今天,就用 Python 幫助你建立第一個結合交易金額與交易時段的風控規則,讓你一步步看懂背後的邏輯。

為什麼要結合金額與時段判斷?
在真實的金融場景中,「金額」往往只是異常的其中一個判斷條件。例如:

  • 一筆金額超過 3000 元的交易,如果發生在下午 2 點的日常購物,可能不算異常。
  • 但如果同樣金額的交易發生在凌晨 3 點,風控系統就會亮起紅燈。
    這種多條件判斷的方式,可以有效降低誤報與漏報。

用 Python 實作雙條件風控
我們來用程式模擬 20 筆交易,並加入交易時間的條件判斷。

import numpy as np
import random

# 模擬 20 筆交易金額(1 ~ 5000 元)
transactions = np.random.randint(1, 5000, 20)

# 模擬交易時間(隨機在一天的 24 小時內)
transaction_times = [random.randint(0, 23) for _ in range(20)]

# 定義「非平常時段」(例:晚上 10 點到早上 6 點)
def is_off_hours(hour):
    return hour >= 22 or hour < 6

# 定義風控規則:金額大於 3000 且非平常時段
def is_suspicious(amount, hour):
    return amount > 3000 and is_off_hours(hour)

# 輸出交易資料與判斷結果
for amount, hour in zip(transactions, transaction_times):
    status = "⚠️ 異常" if is_suspicious(amount, hour) else "✅ 正常"
    print(f"交易金額:{amount} 元 | 時間:{hour}:00 | {status}")

你會看到什麼結果?

  • 如果交易金額 ≤ 3000 元,即使在凌晨也不會被標記異常。
  • 如果交易金額 > 3000 元,但時間在白天,也屬正常。
  • 只有同時滿足兩個條件(大金額 + 非平常時段)才會被標記「⚠️ 異常」。

重點複習

  1. 真實世界的金融風控是多維度判斷,不會只看單一條件。

  2. Python 很適合用來快速模擬與驗證風控規則。

  3. 透過這樣的小專案,你能更直觀地理解風控的邏輯與價值。

    「風控不是限制交易,而是守護金融世界的安全網。」


上一篇
區塊鏈的基本概念與應用場景 + Python 實作體驗
下一篇
用 Python 分析信用卡消費行為 — 找出你的消費習慣
系列文
30天用Python打造你的數位金融實力:從零開始的FinTech入門筆記28
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言